import { ref, onMounted, onUnmounted, computed } from 'vue'
  
export default function useTime() {  

  let currentTime = ref(new Date())
  let updateCurrentTimeIntervalId:number | null = null

  onMounted(() => {
    // 组件挂在后启动定时器
    updateCurrentTimeIntervalId = setInterval(updateTime, 1000) // 更新 intervalId  
  })
  
  onUnmounted(() => {
    if (updateCurrentTimeIntervalId !== null) { // 可选的检查，但在这个场景下通常是必要的  
      clearInterval(updateCurrentTimeIntervalId)
    }
  })

  let formattedCurrentDate = computed(() => currentTime.value.toLocaleDateString())
  let formattedCurrentTime = computed(() => currentTime.value.toLocaleTimeString())

  function updateTime() {  
    currentTime.value = new Date() // 更新响应式引用
  }  

  return {  
    currentTime, formattedCurrentDate, formattedCurrentTime
  }
}